/*************************************************************************
	> File Name: Factory.h
	> Author: Joker
	> Mail: mahongtao@foxmail.com 
	> Created Time: 2020-09-08 06:53:00
 ************************************************************************/

#ifndef __FACTORY_H__
#define __FACTORY_H__

class Product{
public:
    Product(){}
    virtual ~Product(){}
};

class ConcreateProduct
:public Product{
public:
    ConcreateProduct();
    virtual ~ConcreateProduct();
};

class Creator{
public:
    Creator(){}
    virtual ~Creator(){}

    void AnOperation();

protected:
    virtual Product * FactoryMethod() = 0;
};

class ConcreateCreator
:public Creator{
public:
    ConcreateCreator();
    virtual ~ConcreateCreator();

protected:
    virtual Product * FactoryMethod();
};

#endif
